/*
 * Created on 24/06/2005
 *
 */
package com.master.bd.calculo_frete;

import java.sql.*;

import com.master.ed.*;
import com.master.root.*;
import com.master.util.*;
import com.master.util.bd.*;

public class Calcula_Frete_Programacao_Carga
    extends Calcula_Frete {

  public Calcula_Frete_Programacao_Carga (ExecutaSQL executasql) {
    super (executasql);
     // //  ("Calcula_Frete_Programacao_Carga 1");
  }
  double vl_frete_total = 0;
  double vl_Frete_Peso = 0;
  double vl_Frete_Valor = 0;
  double vl_Descontar_Pedagio = 0;

  public void calcula (Calcula_FreteED ed) throws Excecoes {
      this.calculaFrete (ed);
  }

  protected void calculaFrete (Calcula_FreteED ed) throws Excecoes {
	    try {
	      // --------------------FRETE PESO--------------------------------------------------

	      sql = " SELECT VL_Tarifa as VL_Total_Frete, VL_Seguro as PE_Ad_Valorem, DM_ICMS FROM Programacoes_Cargas ";
	        sql += " WHERE Programacoes_Cargas.oid_programacao_carga = " + ed.getOid_Programacao_Carga ();
	        
	        //// //  ("Calcula Frete Prog Carga =>> "+sql);

	        rs = this.executasql.executarConsulta (sql);
	        if (rs.next ()) {

	          //FRETE PESO	
	          Tipo_Movimento = "FP";
	          VL_Movimento_Frete = rs.getDouble ("VL_Total_Frete");     
		        //// //  ("Calcula Frete Prog Carga VL_Movimento_Frete=>> "+VL_Movimento_Frete);
		      ed.setCD_Tipo_Movimento (Tipo_Movimento);
		      ed.setOID_Tabela_Frete ("");
		      ed.setVL_Movimento (VL_Movimento_Frete);
		      ed.setVL_Tarifa (VL_Movimento_Frete);
		      this.incluiMovimento (ed);
		      ed.setVL_Tarifa (0);
	
		      Tipo_Movimento = "AV";
		      VL_Movimento_Frete = (ed.getVL_Nota_Fiscal_Calculo () * rs.getDouble ("PE_Ad_Valorem") / 100);
		        //// //  ("Calcula Frete Prog Carga PE_Ad_Valorem=>> "+VL_Movimento_Frete);
		      ed.setCD_Tipo_Movimento (Tipo_Movimento);
		      ed.setOID_Tabela_Frete ("");
		      ed.setVL_Movimento (VL_Movimento_Frete);
		      ed.setVL_Tarifa (VL_Movimento_Frete);
		      this.incluiMovimento (ed);
		      ed.setVL_Tarifa (0);
	        } 
	       //// //  ("FIM");

	      }

	    catch (SQLException exc) {
	      throw new Excecoes (exc.getMessage () , exc , getClass ().getName () , "calculaFretePeso");
	    }
	  }

	
  

}
